home *** CD-ROM | disk | FTP | other *** search
/ Creative Review 28 / Creative-Review-CD-ROM-28.iso / pc / kungfu / assets / game.dir / 00004_Script_joystick manager class < prev    next >
Text File  |  1997-08-08  |  3KB  |  159 lines

  1. -- joy stick manager class
  2. -- --------------------------------------------------
  3. -- this tracks the control ( left ) and option ( right ) keys
  4. -- with regular checks
  5. -- informs player of changes of direction with mjoystick
  6. -- --------------------------------------------------
  7.  
  8. property updategap
  9.  
  10. property leftcode
  11. property rightcode
  12.  
  13. property leftflag
  14. property rightflag
  15.  
  16. property direction
  17.  
  18. property changeflag
  19.  
  20. global gplayer, gtime, gkeylist, gjoylist, gpoll
  21.  
  22. -- ==================================================
  23. -- new method
  24. -- --------------------------------------------------
  25. on new me
  26.   
  27.   minit me
  28.   return me
  29.   
  30. end mnew 
  31.  
  32. -- ==================================================
  33. -- minit method
  34. -- --------------------------------------------------
  35. on minit me
  36.   
  37.   --  put " in minit joystick"
  38.   
  39.   
  40.   set leftcode = the left of gjoylist
  41.   set rightcode = the right of gjoylist
  42.  
  43.   
  44.   mnonedown me
  45.   set changeflag = false
  46.   set updategap = 5
  47.   maddtask gtime, me, the timer + updategap
  48.   
  49. end minit me
  50.  
  51. -- ==================================================
  52. -- mdotask method
  53. -- --------------------------------------------------
  54. on mdotask me
  55.   
  56.   --  put "* in mdotask joystick"
  57.   
  58.   set changeflag = false
  59.   
  60.   case direction of :
  61.       
  62.     #none:
  63.       
  64.       if monekey ( gpoll,  leftcode ) then mleftdown (me)
  65.       else if monekey ( gpoll,  rightcode ) then mrightdown (me)
  66.       
  67.     #left: 
  68.       
  69.       if not ( monekey ( gpoll,  leftcode ) )  then mnonedown (me)
  70.       
  71.       if rightflag  then
  72.         if not monekey ( gpoll,  rightcode ) then set rightflag = false
  73.         
  74.       else if monekey ( gpoll,  rightcode ) then mrightdown (me)
  75.       
  76.     #right:
  77.       
  78.       if not ( monekey ( gpoll,  rightcode ) ) then mnonedown (me)
  79.       
  80.       if  leftflag  then
  81.         if not ( monekey ( gpoll,  leftcode ) ) then set leftflag = false
  82.         
  83.       else if ( monekey ( gpoll,  leftcode ) ) then mleftdown (me)
  84.       
  85.     #up:
  86.       
  87.     #upright:
  88.       
  89.       
  90.     #upleft:
  91.       
  92.       
  93.   end case
  94.   
  95.   if changeflag then
  96.     --    put "ò new direction: " , direction
  97.     mjoystick ( gplayer , direction)
  98.   end if
  99.   
  100.   return updategap
  101.   
  102. end mdotask
  103.  
  104. -- ==================================================
  105. -- mrightdown method
  106. -- --------------------------------------------------
  107. on mrightdown me
  108.   
  109.   --  put "in mrightdown"
  110.   
  111.   set direction = #right
  112.   set rightflag = true
  113.   set changeflag = true
  114.   
  115.   --  put "out mrightdown"
  116.   
  117. end mrightdown me
  118.  
  119. -- ==================================================
  120. -- mleftdown method
  121. -- --------------------------------------------------
  122. on mleftdown me
  123.   
  124.   --  put "in mleftdown"
  125.   
  126.   set direction = #left
  127.   set leftflag = true
  128.   set changeflag = true
  129.   
  130.   --  put "out mleftdown"
  131.   
  132. end mleftdown me
  133.  
  134. -- ==================================================
  135. -- mnonedown method
  136. -- --------------------------------------------------
  137. on mnonedown
  138.   
  139.   set direction = #none
  140.   set leftflag = false
  141.   set rightflag = false
  142.   set changeflag = false
  143.   
  144. end mnonedown
  145.  
  146.  
  147. -- ==================================================
  148. -- mgetlastest method
  149. -- --------------------------------------------------
  150. on mgetlatest me
  151.   
  152.   -- put "in mgetlatest joy"
  153.   
  154.   if direction = #none then return 0
  155.   else return direction
  156.   
  157.   -- put "out mgetlatest joy"
  158.   
  159. end mgetlatest